Skip to content

docs(skills): end the dogfood delivery checklist at the draft PR - #15847

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-15842-dogfood-checklist-ends-at-the-draft-pr
Sep 5, 2026
Merged

docs(skills): end the dogfood delivery checklist at the draft PR#15847
os-zhuang merged 1 commit into
mainfrom
claude/issue-15842-dogfood-checklist-ends-at-the-draft-pr

Conversation

@claude

@claude claude Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Fixes #15842

The delivery checklist in .claude/skills/dogfood-verification/SKILL.md told its executor to gh pr merge --squash --auto --delete-branch, and to remove the worktree with --force. Both are forbidden to that same executor by standing rules in .claude/agents/os-dev.md — never merge anything, and never reach for --force first, because a refused removal is this container's only guard over uncommitted work. The file is itself a governed surface, where no seat arms auto-merge at all, and gh is absent from the dev container, so the step was unexecutable as well as forbidden.

The checklist now ends where every other dev flight ends:

  • Commit (trailer unchanged), push, open a draft PR — the REST endpoint in a dev container, gh pr create --draft on a human's machine — and report the PR to the dispatching seat; ready, queue and human merge belong to that seat.
  • git worktree remove /tmp/pr with no --force: a refusal means uncommitted work, so read git status first.

gh pr merge --squash --auto --delete-branch is gone from the file, not softened to "optional". No other line of the skill moves. The published skills/ catalog and the sibling objectui repo carry no copy of this checklist — grepped both, single location.

Verification (at 83221b5)

  • node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derived 13 families from the one changed path; all 13 were run, and --ran reconciles them: dispatch-gates --ran: 13 derived famil(ies) accounted for — 13 run, 0 NOT-MEASURED.
  • pnpm check:pm-skill-ratchet: check-skill-line-ratchet: .claude/skills/dogfood-verification/SKILL.md is 148 lines (ceiling 157; headroom 9). The file measures 148 lines before and after — line-neutral, ceiling untouched, and every replacement line is within the 120-byte budget.
  • node scripts/check-skills-token-ratchet.mjs: check-skills-token-ratchet: 36 authored bundle file(s) within their ceilings. It measures the published skills/ bundle only and names no .claude/skills/** file, so it does not pin this one; the line ratchet is the one that does.
  • node scripts/check-skill-frame-sync.mjs: check-skill-frame-sync: 2 copies of the decision frame are structurally isomorphic across 2 files.
  • pnpm --filter @objectstack/lint run check:doc-formula-expressions first returned exit 3, PREREQUISITE NOT MET — nothing measured — until @objectstack/formula and @objectstack/lint were built; green after the build.
  • Whole-repo pnpm lint (eslint . --no-inline-config) through scripts/pm/os-verify-lock.sh, slot issue-15842: VERDICT command-exit 0 · held the lock 68s. The full scan, not a narrowed one.

Governed surface (.claude/**): draft, skip-changeset, and the landing stays with the seat — ready, queue and merge are not armed here.

Generated by Claude Code


Generated by Claude Code

The delivery checklist told its executor to `gh pr merge --squash --auto
--delete-branch` and to force-remove the worktree. Two standing rules for
that same executor say the opposite (never merge anything; never `--force`
first), and the governed endgame lets no seat arm auto-merge on a governed
PR at all. `gh` is also absent from dev containers, so the step was not
merely forbidden but unexecutable as written.

The checklist now ends at the draft PR: commit, push, open a DRAFT PR (the
REST endpoint in a dev container, `gh pr create --draft` on a human's
machine), report the PR to the dispatching seat; ready, queue and human
merge belong to that seat. The worktree line drops `--force` and says what
the dev-agent rule says: a refusal means uncommitted work, so read
`git status` first. Net 0 lines (148 before and after), so the line-ratchet
ceiling of 157 is untouched.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox

os-steve commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

ACCEPT — in-seat review of PR #15847, head 83221b575 (skills seat, 2026-09-05T11:1xZ).

Implemented-by: claude/issue-15842-dogfood-checklist-ends-at-the-draft-pr (os-dev subagent)
Reviewed-by: session_019RfFHiRCSs3JXLK4cwcfox (skills seat)

Verified in a detached compare worktree at the PR head, three-dot against origin/main (d701e657d), not from the report: one file, .claude/skills/dogfood-verification/SKILL.md, +3 / −3, line-neutral (148 lines, ceiling 157 — the line ratchet is the gate that pins this file; the token ratchet names no .claude/skills file). The checklist item that told the executor to gh pr merge --squash --auto --delete-branch and git worktree remove /tmp/pr --force is gone, not softened: it now reads commit, push, open a DRAFT PR (REST in a dev container, gh pr create --draft on a human machine) and report the PR to the dispatching seat — ready, queue and human merge belong to that seat — and the worktree line forbids --force with the reason os-dev.md line 85 gives. The only remaining --force in the file is that prohibition. No sibling or published copy exists (the dev grepped skills/, the tree and objectui). No model names in the diff or the PR body; Fixes #15842 first line; skip-changeset with the size label intact. Governed (check-governed-merges --test exit 3). The dev's wording judgement — the qualifier "under the governed rules" dropped to stay inside the 120-byte line budget — stands: the ownership sentence says the same thing without it.

Seat gate runs on this head in the compare worktree: skill-line-ratchet exit 0 (this file 148/157, unchanged), token ratchet exit 0, governed exit 3. The dev's evidence beyond that: 13 derived families all exit 0 and reconciled 13 of 13, frame-sync green (two declared copies), the formula-expressions gate green after building its prerequisites, whole-repo lint through the lock, and CI on 83221b575: 29 check runs completed, 23 success, the rest skipped, none failing.

Landing regime: governed surface ⇒ this PR stays a draft; reviewers os-zhuang and hotlong requested by the seat; the human merge is the review record; no seat flips it ready, enqueues it, or arms auto-merge. Fixes #15842 closes the card on merge.


Generated by Claude Code

os-steve commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

Tally correction to the ACCEPT above (skills seat, 2026-09-05T11:2xZ): the seat's own REST read of the check runs on 83221b575 at 11:22Z gives 29 completed — 17 success, 12 skipped, none failing. The verdict quoted the dev's split (23 success) without re-measuring it; the seat's split is the measured one. Nothing else changes: no run failed, and the verdict stands.


Generated by Claude Code

@os-zhuang
os-zhuang marked this pull request as ready for review September 5, 2026 11:24
@os-zhuang
os-zhuang enabled auto-merge September 5, 2026 11:24
@os-zhuang
os-zhuang added this pull request to the merge queue Sep 5, 2026
Merged via the queue into main with commit 8e7653b Sep 5, 2026
31 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-15842-dogfood-checklist-ends-at-the-draft-pr branch September 5, 2026 11:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants